package com.aspose.cells;

import java.util.ArrayList;

class zbpt {
   static boolean a(String var0) {
      return var0 == null || "".equals(var0);
   }

   static String[] a(String var0, char var1) {
      if (var0.indexOf(34) == -1) {
         return com.aspose.cells.b.a.zv.d(var0, var1);
      } else {
         char[] var2 = var0.toCharArray();
         ArrayList var3 = new ArrayList();
         StringBuilder var4 = new StringBuilder(var2.length);

         for(int var5 = 0; var5 < var2.length; ++var5) {
            if (var2[var5] == var1) {
               com.aspose.cells.b.a.a.ze.a(var3, (Object)com.aspose.cells.b.a.zr.a(var4));
               var4 = new StringBuilder(var2.length);
            } else if (var2[var5] == '"') {
               ++var5;

               while(var5 < var2.length && var2[var5] == '"' && var5 + 1 < var2.length && var2[var5 + 1] == '"') {
                  var4.append('"');
                  ++var5;
                  ++var5;
               }
            } else {
               var4.append(var2[var5]);
            }
         }

         return null;
      }
   }

   static int[] a(WorksheetCollection var0) {
      Font var1 = (Font)var0.z().get(0);
      if (var1.getSize() == 0) {
         throw new CellsException(6, "Default font size is 0.");
      } else {
         int[] var2 = new int[5];
         int var3 = 0;
         if (var1.isBold()) {
            var3 |= 1;
         }

         if (var1.isItalic()) {
            var3 |= 2;
         }

         var2[2] = (int)((double)com.aspose.cells.a.c.zn.a(var1.getName(), (int)Math.ceil(var1.getDoubleSize()), var3) + 0.5D);
         return var2;
      }
   }

   static int a(char[] var0, char[] var1, int var2, int var3) {
      while(var2 < var0.length && (var0[var2] == '*' || var0[var2] == '?')) {
         ++var2;
      }

      if (var2 >= var0.length) {
         return var1.length - 1;
      } else {
         for(; var3 < var1.length; ++var3) {
            if (var0[var2] == var1[var3]) {
               boolean var4 = true;
               int var5 = var3 + 1;

               for(int var6 = var2 + 1; var6 < var0.length; ++var5) {
                  if (var0[var6] == '*') {
                     return var6 + 1 == var0.length ? var1.length - 1 : a(var0, var1, var6 + 1, var5);
                  }

                  if (var5 >= var1.length) {
                     return var5;
                  }

                  if (var0[var6] != var1[var5]) {
                     var4 = false;
                     break;
                  }

                  ++var6;
               }

               if (var4) {
                  return var5 - 1;
               }
            }
         }

         return var3;
      }
   }

   public static int a(String var0, String var1, boolean var2) {
      if (var2) {
         var0 = var0.toUpperCase();
         var1 = var1.toUpperCase();
      }

      char[] var3 = var0.toCharArray();
      char[] var4 = var1.toCharArray();
      int var5 = var3.length;
      int var6 = var4.length;
      int var7 = 0;

      int var8;
      for(var8 = 0; var7 < var5; ++var8) {
         if (var8 >= var6) {
            if (var3[var7] == '*' && var7 + 1 == var5) {
               return 0;
            }

            return 1;
         }

         switch(var3[var7]) {
         case '*':
            if (var7 + 1 == var5) {
               return 0;
            }

            if (var3[var7 + 1] != '*') {
               var8 = a(var3, var4, var7 + 1, var8);
               if (var8 >= var6) {
                  return 1;
               }

               if (var8 == var6 - 1) {
                  return 0;
               }

               return -1;
            }

            --var8;
         case '?':
            break;
         case '~':
            if (var7 + 1 < var5 && (var3[var7 + 1] == '*' || var3[var7 + 1] == '?')) {
               ++var7;
            }

            if (var3[var7] > var4[var8]) {
               return 1;
            }

            if (var3[var7] < var4[var8]) {
               return -1;
            }
            break;
         default:
            if (var3[var7] > var4[var8]) {
               return 1;
            }

            if (var3[var7] < var4[var8]) {
               return -1;
            }
         }

         ++var7;
      }

      if (var8 < var6) {
         return -1;
      } else {
         return 0;
      }
   }

   static int a(String var0, Font var1) {
      int var2 = 0;
      float var3 = 10.0F;
      String var4 = "Arial";
      if (var1 != null) {
         if (var1.isBold()) {
            var2 |= 1;
         }

         if (var1.isItalic()) {
            var2 |= 2;
         }

         if (var1.isStrikeout()) {
            var2 |= 8;
         }

         if (var1.getUnderline() != 0) {
            var2 |= 4;
         }

         var4 = var1.getName();
         var3 = (float)var1.getDoubleSize();
      }

      return com.aspose.cells.a.c.zn.a(var0, var4, var3, var2);
   }

   static String a(com.aspose.cells.b.a.d.za var0, int var1, boolean var2) throws Exception {
      byte[] var3;
      if (var2) {
         var3 = var0.g(var1 * 2);
         return Encoding.getUnicode().a(var3);
      } else {
         var3 = var0.g(var1);
         return Encoding.getASCII().a(var3);
      }
   }

   private static boolean[] a(char[] var0) {
      boolean var1 = false;
      int var2 = 0;

      while(var2 < var0.length) {
         switch(var0[var2]) {
         case '*':
         case '?':
            return new boolean[]{true, false};
         case '~':
            if (var2 + 1 < var0.length && (var0[var2 + 1] == '*' || var0[var2 + 1] == '?')) {
               var1 = true;
               ++var2;
            }
         default:
            ++var2;
         }
      }

      return new boolean[]{false, var1};
   }

   public static Object a(String var0, boolean var1) {
      char[] var2 = var0.toCharArray();
      boolean[] var3 = a(var2);
      boolean var4 = var3[0];
      boolean var5 = var3[1];
      StringBuilder var6;
      int var7;
      if (var4) {
         var6 = new StringBuilder(var2.length + var2.length / 2);
         var6.append('^');

         for(var7 = 0; var7 < var2.length; ++var7) {
            switch(var2[var7]) {
            case '$':
            case '(':
            case ')':
            case '+':
            case '.':
            case '[':
            case '\\':
            case ']':
            case '^':
            case '{':
            case '|':
            case '}':
               var6.append('\\');
               var6.append(var2[var7]);
               break;
            case '*':
               var6.append('.');
               var6.append(var2[var7]);
               break;
            case '?':
               var6.append('.');
               break;
            default:
               var6.append(var2[var7]);
            }
         }

         var6.append('$');
         return new com.aspose.cells.b.a.g.a.ze(com.aspose.cells.b.a.zr.a(var6), var1 ? 66 : 0);
      } else if (!var5) {
         return null;
      } else {
         var6 = new StringBuilder(var2.length);

         for(var7 = 0; var7 < var2.length; ++var7) {
            switch(var2[var7]) {
            case '~':
               if (var7 + 1 < var2.length && (var2[var7 + 1] == '*' || var2[var7 + 1] == '?')) {
                  ++var7;
                  var6.append(var2[var7]);
               }
            }
         }

         return com.aspose.cells.b.a.zr.a(var6);
      }
   }
}
